package com.lutzyt.delivery.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lutzyt.delivery.bean.Menu;
import com.lutzyt.delivery.bean.vo.MenuTree;

import java.util.List;

/**
 *
 */
public interface MenuService extends ActionService<Menu> {

  /**
   * 通过ID查询单个
   *
   * @param id ID
   * @return {@link Menu}
   */
  Menu findById(Integer id);

  /**
   * 分页查询
   *
   * @param pageNum  页号
   * @param pageSize 每页大小
   * @return {@link Menu}
   */
  Page<Menu> findByPage(int pageNum, int pageSize);

  /**
   * 新增
   *
   * @param menu
   */
  void insert(Menu menu);

  /**
   * 修改
   *
   * @param menu
   */
  void update(Menu menu);

  /**
   * 通过ID删除单个
   *
   * @param id ID
   */
  void deleteById(Integer id);

  /**
   * 通过ID批量删除
   *
   * @param ids ID
   */
  void deleteByIds(List<String> ids);

  /**
   * 父菜单下拉框列表
   *
   * @return 菜单
   */
  List<Menu> parentList();

  /**
   * 返回菜单树列表
   * @return 菜单树
   */
  List<MenuTree> menuTree();

  /**
   * 菜单列表
   * @param username
   * @return
   */
  List<MenuTree> getByUsername(String username);
}